Field of the Invention
The present invention relates to a computer-implemented method for generating a control program that is executable on a control system from a graphical control model, wherein the control system has a process interface and the control system is configured such that it is possible, through the process interface, for at least one process quantity of a physical process to be sensed by the control system and/or for an output quantity for influencing the physical process to be output by the control system, wherein the control system has at least one electronic computing unit with at least one fixed-point execution unit (FXP unit) and with at least one floating-point execution unit (FLP unit), and wherein the graphical control model has a number of model operations.
Description of the Background Art
Such methods for computer-assisted—which is to say computer-automated—generation of an executable control program from a graphical control model are known in the conventional art, and represent one of the fundamental functionalities of development environments for generating programs for control systems such as, e.g., control units. The graphical control model is generally present in the form of a block diagram, which is used to model and display the mathematical functionality of a control algorithm, for example. In industrial practice, such control systems are frequently present as a small computer embedded in a higher-level technical process; in the automotive field such control systems are generally referred to as control units.
Methods for generating an executable control program from a graphical control model are objectively referred to as code generators. They ensure the reliable and error-free translation of an abstract functional description (graphical control model) into a low-level program for the target system (control system). One method for generating a control program is described in detail in, for example, DE 10347891 A1, which is incorporated herein by reference.
The computing units of control systems typically have an integer arithmetic logic unit, often referred to as an integer execution unit (IEU), hereinafter referred to as a fixed-point execution unit (FXP unit). Using these integer or fixed-point execution units, both integers and fixed-point numbers can be processed, since fixed-point arithmetic corresponds to integer arithmetic in principle. Because fixed-point operations and floating-point operations (FLP operations) are discussed below, the integer arithmetic logic unit is referred to as a fixed-point execution unit (FXP unit) in contrast to a floating-point arithmetic logic unit, for which the term floating-point execution unit (FLP unit) is customary. With this understanding, fixed-point operations can also include integer operations.
Since it was previously common for electronic computing units, in particular of embedded control systems, to have only an FXP unit, all model operations of the graphical control model in methods known from the prior art are translated exclusively into fixed-point operations (FXP operations) of the generated program code. Although this practice ensures that the program code generated with the method used, and the control program translated therefrom, is in principle executable on practically any computing unit, the hardware resources are then only partially utilized if the electronic computing unit of the control system also has an FLP unit in addition to the FXP unit. Since the control systems considered here are as a general rule sampling systems operating under real-time conditions, and thus an arbitrarily large amount of time is not available for execution of the control program, more powerful control systems must be employed when the FXP unit is fully utilized and no additional calculation steps can be executed in the specified time period.